package org.jet.emall.prod.service;

import org.jet.emall.common.restful.result.CommonPage;
import org.jet.emall.prod.dto.CartDTO;
import org.jet.emall.prod.dto.CategoryDTO;
import org.jet.emall.prod.dto.SkuDTO;
import org.jet.emall.prod.dto.SpuDetailsDTO;

import java.util.List;

/**
 * @author xiaozai
 * @version 1.0
 * @date 2020-04-25 12:03
 */
public interface CustomProductService {

    /**
     *  分页查找SKU
     * @param query
     * @param pageNum
     * @param pageSize
     * @return
     */
    CommonPage<SkuDTO> page(String query, Integer pageNum, Integer pageSize);


    /**
     *  分页查找SKU
     * @param query
     * @param pageNum
     * @param pageSize
     * @return
     */
    CommonPage<SkuDTO> page2(Long cateId, Long brandId, String query, Integer pageNum, Integer pageSize);



    /**
     *  获取SPU详情
     * @param id
     * @return
     */
    SpuDetailsDTO getSpuDetails(Long id);

    /**
     *   获取用户购物车
     * @param customerId
     * @return
     */
    CartDTO getCart(Long customerId);

    /**
     *  更新购物车, 并返回购物车
     * @param cartId
     * @param skuId
     * @param count
     * @return
     */
    CartDTO updateCart(Long cartId, Long skuId, Integer count);

    /**
     *   批量删除购物项
     * @param cartId
     * @param cartItemIds
     * @return
     */
    CartDTO deleteCartItems(Long cartId, List<Long> cartItemIds);

    /**
     *  勾选购物项
     * @param cartId
     * @param cartItemIds
     * @return
     */
    CartDTO updateCartItemsSelected(Long cartId, List<Long> cartItemIds);

    /**
     *   获取商品分类树
     * @return
     */
    List<CategoryDTO> getProductCategories();

    SpuDetailsDTO getSpuDetailsBySkuId(Long id);
}
